# Regression test for https://go.dev/issue/60313: 'go mod tidy' did not preserve
# dependencies needed to prevent 'ambiguous import' errors in external test
# dependencies.

cp go.mod go.mod.orig
go mod tidy
cmp go.mod go.mod.orig

-- go.mod --
module example

go 1.21

require (
	example.net/a v0.1.0
	example.net/b v0.1.0
)

require example.net/outer/inner v0.1.0 // indirect

replace (
	example.net/a v0.1.0 => ./a
	example.net/b v0.1.0 => ./b
	example.net/outer v0.1.0 => ./outer1
	example.net/outer/inner v0.1.0 => ./inner
)
-- example.go --
package example

import (
	_ "example.net/a"
	_ "example.net/b"
)
-- a/go.mod --
module example.net/a

go 1.21

require example.net/outer/inner v0.1.0
-- a/a.go --
package a
-- a/a_test.go --
package a_test

import _ "example.net/outer/inner"
-- b/go.mod --
module example.net/b

go 1.21

require example.net/outer v0.1.0
-- b/b.go --
package b
-- b/b_test.go --
package b_test

import _ "example.net/outer/inner"
-- inner/go.mod --
module example.net/outer/inner

go 1.21
-- inner/inner.go --
package inner
-- outer1/go.mod --
module example.net/outer

go 1.21
-- outer1/inner/inner.go --
package inner
-- outer2/go.mod --
module example.net/outer

go 1.21
